/******************************************
 * Nombre del archivo: Op_Aritmetica.java
 * Universidad del Valle de Guatemala
 * Curso: Algoritmos y Estructura de Datos
 * Autores:
 *      * Martín Guzmán     08041
 *      * David Hsieh       08225
 *      * Eduardo Mejicano  08058
 *      * Kevin Sánchez     08302
 * Fecha: 16 de agosto de 2009
 * Descripción:
*******************************************/

public class Op_Aritmetica extends Operacion {
    private static String[] Operadores_aritmeticos = {"+","-","*","/"};

    public Op_Aritmetica(){

    }

    /*****************************************
     * Método: Suma
     * Autor: Martín Guzmán
     * Uso: Suma dos enteros
     * Retorno: la suma de (a+b)
     *****************************************/
    public static int Suma(int a, int b){////PENDIENTE
        return (a+b);
    }

    public static String Operar(String operador,int A,int B){
        int result=0;
        //si la operación es una suma
        if (operador.compareTo("+")==0){
            result=Suma(A,B);
        }
        //si la operación es una resta
        else if (operador.compareTo("-")==0){
            result=Resta(A,B);
        }
        //si la operación es una multiplicación
        else if (operador.compareTo("*")==0){
            result=Mult(A,B);
        }
        //si la operación es una división
        else if (operador.compareTo("/")==0){
            result=(int)Div((double)A,(double)B);
        }
        return ""+result;
    }

    /*****************************************
     * Método: Resta
     * Autor: Martín Guzmán
     * Uso: Resta dos enteros
     * Retorno: la resta de (a-b)
     *****************************************/
    public static int Resta(int a, int b){////PENDIENTE
        return (a-b);
    }

    /*****************************************
     * Método: Mult
     * Autor: Martín Guzmán
     * Uso: Multiplica dos enteros
     * Retorno: la multiplicación de (a*b)
     *****************************************/
    public static int Mult(int a, int b){
        return (a*b);
    }

    /*****************************************
     * Método: Div
     * Autor: Martín Guzmán
     * Uso: Divide dos reales
     * Retorno: la división de (a/b)
     *****************************************/
    public static double Div(double a, double b){
        return (a/b);
    }

    /*****************************************
     * Método: getOperadores
     * Autor: Martín Guzmán
     * Uso: devuelve los operadores aritméticos
     *      que tiene.
     * Retorno: Operadores
     *****************************************/
    public static String[] getOperadores() {
        return Operadores_aritmeticos;
    }

    /*****************************************
     * Método: Buscar
     * Autor: Martín Guzmán
     * Uso: para ver si se encuentra determinado
     *      operador en esta clase
     * Retorno: Booleano con la respuesta
     *****************************************/
    public static boolean Buscar(String operador) {
        boolean retorno=false;
        for(int i=0;i<Op_Aritmetica.Operadores_aritmeticos.length;i++){
            if(Operadores_aritmeticos[i].compareToIgnoreCase(operador)==0){
                retorno=true;
            }
        }
        return retorno;
    }

}
